package com.citicpub_cloud.restfull.utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

/**
 * 时间工具类
 *
 * @author gengzhixin
 */
public class DateUtils {

    public final static SimpleDateFormat sdfhms =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");

    public final static SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd");

    public final static SimpleDateFormat sdfimgpath =new SimpleDateFormat("yyyyMMdd");

    /**
     * 
     * @param expireTime 秒 
     * @param time  验证时间
     * @return
     */
    public static boolean validIsTimeOut(int expireTime,Long time){
        Long ctime = System.currentTimeMillis();
        if((ctime-time)>(expireTime*1000)){
            return true;
        }
        return false;
    }

    /**
     * 获取当前日期字串 yyyyMMdd
     * @return
     */
    public static String getCurrentDateStr(){
        return sdfimgpath.format(new Date());
    }
    public static Object getCurrentDateTimeStr() {
        return sdfhms.format(new Date());
    }
    
    public static Object getDateTimeStr(Long times) {
    	return sdfhms.format(new Date(times));
    }
    
    /**
	 * @desccroption:获取UTC时间本初子午线时区(英国伦敦的本地时)的毫秒数，格林威治（Greenwich，又译格林尼治）是英国大伦敦（the Greater London）的一个区，
	 *               本初子午线，即0度经线，亦称格林威治子午线或格林尼治子午线，是位于英国格林尼治天文台的一条经线（亦称子午线）。
	 *               本初子午线的东西两边分别定为东经和西经，于180度相遇。本初子午线不是东西半球的划分。
	 * @date: 2017年1月4日 下午2:44:47
	 * @author:zhangyufeng@citicpub.com
	 * long
	 */
	public static long getUTCTime(){
		//1、取得本地时间：
        java.util.Calendar cal = java.util.Calendar.getInstance();

        //2、取得时间偏移量：
        int zoneOffset = cal.get(java.util.Calendar.ZONE_OFFSET);

        //3、取得夏令时差：
        int dstOffset = cal.get(java.util.Calendar.DST_OFFSET);

        //4、从本地时间里扣除这些差量，即可以取得UTC时间：
        cal.add(java.util.Calendar.MILLISECOND, -(zoneOffset + dstOffset));

        //之后调用cal.get(int x)或cal.getTimeInMillis()方法所取得的时间即是UTC标准时间。
        System.out.println("UTC2:"+new Date(cal.getTimeInMillis()));
        System.out.println("UTC3:"+cal.getTimeInMillis());
        return cal.getTimeInMillis();
	}
	
	/**
	 * @desccroption:获取UTC时间本地时区(北京)毫秒数
	 * @date: 2017年1月4日 下午2:44:47
	 * @author:zhangyufeng@citicpub.com
	 * long
	 */
	public static long getUTCLocalTime(){
		//1、取得本地时间：
        java.util.Calendar cal = java.util.Calendar.getInstance();
        System.out.println("UTC3:"+cal.getTimeInMillis());
        return cal.getTimeInMillis();
	}
	
	
	 public static Date addDayDate(Date date,Integer day){
	        Calendar ca = Calendar.getInstance();
	        ca.setTime(date);
	        ca.set(Calendar.DAY_OF_MONTH,ca.get(Calendar.DAY_OF_MONTH)+day);
	        return ca.getTime();
	    }
	
}
